Chapter 2, float data type chap2>cat float1.c #include #define DELTA 8 void printfloat(float); main() { float x; printf("\n Dec Hex binary \n\n"); for (x = -DELTA; x <= DELTA; x++) printfloat(x); printf("\n"); } void printfloat(float x) { unsigned long i; union floatandlong { float asfloat; long aslong; } bits32; bits32.asfloat = x; printf(" %12.2f %8.8x ", bits32.asfloat, bits32.aslong); for (i = 0x80000000ul; i > 0; i>>=1) printf("%c", (i & bits32.aslong ? '1' : '0')); printf("\n"); } unix> gcc float1.c unix> ./a.out Dec Hex binary -8.00 c1000000 11000001000000000000000000000000 -7.00 c0e00000 11000000111000000000000000000000 -6.00 c0c00000 11000000110000000000000000000000 -5.00 c0a00000 11000000101000000000000000000000 -4.00 c0800000 11000000100000000000000000000000 -3.00 c0400000 11000000010000000000000000000000 -2.00 c0000000 11000000000000000000000000000000 -1.00 bf800000 10111111100000000000000000000000 0.00 00000000 00000000000000000000000000000000 1.00 3f800000 00111111100000000000000000000000 2.00 40000000 01000000000000000000000000000000 3.00 40400000 01000000010000000000000000000000 4.00 40800000 01000000100000000000000000000000 5.00 40a00000 01000000101000000000000000000000 6.00 40c00000 01000000110000000000000000000000 7.00 40e00000 01000000111000000000000000000000 8.00 41000000 01000001000000000000000000000000 unix>